const mysql = require('mysql');
module.exports = {
    config: {
        host: 'localhost', // 登录名
        port: '3306', // 数据库的端口号 
        user: 'root', // 数据库的用户名
        password: '123456', // 数据库的密码
        database: 'gameadmin' // 要连接的数据库的名字
    },
    // 此方法就是提供了数据库的连接
    sqlconnection(sql, params = null) {
        // 因为连接数据库是异步代码，所以要用promise来封装一下，防止回调地狱
        return new Promise((reslove, reject) => {
            // 创建一个连接池
            const pool = mysql.createPool(this.config);
            // 通过创建好的连接池，向数据库发送连接请求
            // 如果连接失败，则err不为null
            // 如果连接成功，则conn里面是一个链接对象，可以调用conn.query方法，来执行想要操作的sql语句
            pool.getConnection((err, conn) => {
                if (err) return reject(`数据库连接失败:${err}`)
                else {
                    // 通过conn来完成sql的执行
                    // conn.query(需要执行的sql语句，sql的参数，callback)
                    // 如果sql执行成功，则err为null，结果放在data中，反之，则err不为null
                    conn.query(sql, params, (err, data) => {
                        if (err) return reject(`sql执行出错:${err}`)
                        else return reslove(data)
                    })
                    conn.release();
                }
            })
        })
    }
}